# coding=utf-8
"""
# Author : Hunter Oakley
# Time   : 2022/6/11 15:25
# Descripation: 中间件
"""
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse,redirect

class AuthMiddleware(MiddlewareMixin):
    """
    登录的中间件
    """

    def process_request(self,request):
        '''
        如果process_request方法中没有返回值(或者返回None),继续向后面走(执行)
        如果有返回值,HttpResponse、render、redirect,则不再继续向后执行
        '''
        # 0.排除那些不需要登录就能访问的页面
        # request.path_inf0获取当前请求的URL /login/ /image/code/
        if request.path_info in ["/login/","/image/code/"]:
            return None

        # 1、读取当前访问用户的session信息，如果能读到，说明已经登录
        info_dict = request.session.get("info")
        # print(info_dict,type(info_dict)) # {'id': 9, 'name': 'test'} <class 'dict'>
        # 如果有登录信息，返回None，继续向后执行
        if info_dict:
            return None

        # 2、没有登录信息,重新回登录页面
        return redirect("/login/")

    # def process_response(self,request,reponse):
    #     return reponse